package kr.pe.johnkim.app.mobile.rest.dao;

import kr.pe.johnkim.app.domain.MyHistoryMember;

/**
 * My History 멤버 관련 기능들을 정의하는 인터페이스이다.
 * 
 * @author : johnkim <cale9797@gmail.com / Simple.ly Inc,>
 * @Date : 11. 12. 27
 */
public interface MyHistoryMemberDao {
    /**
     * 멤버 등록시 중복 확인을 한다.
     * 
     * @param myHistoryMember
     * @return MyHistoryMember
     */
    public MyHistoryMember checkDuplication(MyHistoryMember myHistoryMember);

    /**
     * 멤버를 등록 한다.
     * 
     * @param myHistoryMember
     * @return True or False
     */
    public boolean registerMember(MyHistoryMember myHistoryMember);

    /**
     * 멤버 로그인을 한다.
     * 
     * @param myHistoryMember
     * @return MyHistoryMember
     */
    public MyHistoryMember login(MyHistoryMember myHistoryMember);

    /**
     * 멤버 정보를 수정 한다.
     * 
     * @param myHistoryMember
     * @return
     */
    public boolean updateMember(MyHistoryMember myHistoryMember);

    /**
     * 멤버를 비활성화 한다.
     * 
     * @param myHistoryMember
     * @return
     */
    public boolean updateDeactivateMember(MyHistoryMember myHistoryMember);

    /**
     * 사용자의 마일리지를 가져 온다.
     * 
     * @param myHistoryMember
     * @return
     */
    public MyHistoryMember selectMileage(MyHistoryMember myHistoryMember);

    /**
     * 마일리지를 업데이트(추가) 한다.
     *
     * @param myHistoryMember
     * @return
     */
    public boolean updateMileage(MyHistoryMember myHistoryMember);

    /**
     * 사용자 비밀번호를 변경 한다.
     * 
     * @param myHistoryMember
     * @return
     */
    public boolean updatePassword(MyHistoryMember myHistoryMember);

    /**
     * 사용자 이메일을 업데이트 한다.
     * 
     * @param myHistoryMember
     * @return
     */
    public boolean updateEmail(MyHistoryMember myHistoryMember);
}
